دسته بندی ها
09:28 1398/07/28

استفاده از Stored Procedure در انتیتی فریم ورک code First

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Asp.net Mvc Asp.net Core Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3525
هوش مصنوعی

پاسخ هوش مصنوعی

برای استفاده از Stored Procedure در Entity Framework Code First، ابتدا نیازی به تعریف SP در کد نیست، زیرا شما می توانید آن را مستقیماً در پایگاه داده ایجاد کنید.

برای فراخوانی Stored Procedure در پروژه خود، می توانید از کد زیر استفاده کنید:

using (var context = new YourDbContext())
{
    var result = context.Database.SqlQuery("EXEC YourStoredProcedureName @param1, @param2", 
        new SqlParameter("@param1", value1),
        new SqlParameter("@param2", value2)).ToList();
}

در این کد، YourDbContext نام کلاس DbContext شما و YourEntityType نوع موجودیتی است که می خواهید نتیجه SP را به آن نگاشت کنید.

در مورد ایجاد Stored Procedure از طریق کد و Migration: بله، می توانید SP ها را با استفاده از متد Sql در متد Up مایگریشن ایجاد کنید. به عنوان مثال:

public partial class YourMigration : DbMigration
{
    public override void Up()
    {
        Sql(@"CREATE PROCEDURE YourStoredProcedureName
              @param1 INT,
              @param2 NVARCHAR(100)
              AS
              BEGIN
                  -- Your SQL logic here
              END");
    }

    public override void Down()
    {
        Sql("DROP PROCEDURE IF EXISTS YourStoredProcedureName");
    }
}

این کد Stored Procedure را در حین مایگریت ایجاد می کند و در صورت بازگشت، آن را حذف می کند.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : Sowgandi 23:24 1398/07/26

به این لینک یه سری بزن شاید کمکت کنه

فراخوانی Stored Procedure توسط Entity Framework 6 Code First

به این پاسخ امتیاز بدهید    0
امتیاز: 876 رتبه: 3
پاسخ دهنده : saedbfd 02:10 1399/08/19

استفاده از Stored Procedure در انتیتی فریم ورک Code First

استفاده از Stored Procedure در انتیتی فریم ورک کدفرست زیاد توصیه نمیشه و محدودیتهای زیادی رو ایجاد میکنه. چون اصولا ساختار Code First با Stored Procedure همخوانی نداره. ولی یکی از بهترین مثال ها از سایت خود entityFrameWork هست.

Working with Stored Procedure in Entity Framework Core

ویرایش شده در دوشنبه 19 آبان 1399 ساعت 02:10:55
به این پاسخ امتیاز بدهید    0
امتیاز: 1664 رتبه: 1
پاسخ دهنده : fateme 12:54 1399/08/19

استفاده از Stored Procedure در انتیتی فریم ورک code First

استفاده از Stored Procedure در انتیتی فریم ورک Code First ساده هست. یک مثال براتون مینویسم که توی Asp.net Core 3.1 انجام شده. 

فرض کنید در Sql Server یک Stored Procedure دارید مشابه زیر :

Create Procedure [dbo].[Sp_insert]
	@Title Varchar(50)
As
	Insert Into Groups_Tbl
		(Title)
values
		(@Title)

خب در SP بالا یک پارامتر وجود داره به نام Title که قرار هست یک رکورد در جدولی با نام Groups_Tbl ثبت کنه. حالا کدهایی که در Asp.net Core مینویسیم به صورت زیر خواهد بود

       [HttpPost]
        public async Task<IActionResult> RunSp(string Title)
        {
            try
            {
                SqlParameter TitleParam = new SqlParameter("@Title", Title);
                await _context.Database.ExecuteSqlCommandAsync("Sp_insert @Title", TitleParam);

                return Json(new { st = "success" });
            }
            catch (Exception)
            {
                return Json(new { st = "success" });
            }
        }

در اکشن بالا ابتدا پارامترهایی که قرار هست به Sql ارسال بشه رو با استفاده از کلاس SqlParameter تعریف کردیم و سپس با استفاده از  ExecuteSqlCommandAsync تونستیم SP رو اجرا کنیم.

این یک مثال بسیار ساده و البته کاربردی از استفاده از Stored Proceure در Entity Framework Code Fisrt هست.

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود